'use strict'
module.exports = (appInfo) => {
  const config = (exports = {})
  // use for cookie sign key, should change to your own and keep security
  config.keys = appInfo.name + '_1599410416777_1142'
  config.cluster = {
    listen: {
      path: '',
      port: 7001,
      hostname: '0.0.0.0'
    }
  }

  // 中间件配置
  config.middleware = ['errorHandler', 'user']

  // jwt配置
  config.jwt = {
    // 自定义 token 的加密条件字符串
    secret: 'liupan'
  }
  // session配置
  config.session = { key: 'shop_token', maxAge: 24 * 60 * 60 * 1000 }
  // 上传文件配置
  config.multipart = {
    mode: 'file',
    fileSize: '50mb', // 接收文件大小
    whitelist: [
      // 允许接收的文件类型
      '.png',
      '.jpg',
      '.jpeg',
      '.mp4',
      '.gif'
    ],
    dir: 'blog/' // 上传文件目录
  }
  // 安全管理配置
  config.security = {
    domainWhiteList: ['http://localhost:8080'],
    csrf: {
      // 判断是否需要 ignore 的方法，请求上下文 context 作为第一个参数|| ctx.request.url == '/api/app/user/getCsrf'
      ignore: (ctx) => {
        return true
      }
    }
  }
  // 允许跨域的主机
  config.cors = {
    credentials: true,
    allowMethods: 'GET,HEAD,PUT,POST,DELETE,PATCH'
  }
  // 自定义配置
  const userConfig = {}

  return {
    ...config,
    ...userConfig
  }
}
